SQL कथन ANY और ALL आपको एक कॉलम के मान और अन्य मानों की श्रृंखला के बीच तुलना करने की अनुमति देते हैं।
ANY ऑपरेटर:
ANY का अर्थ है कि यदि सीमा में किसी भी मान के लिए ऑपरेशन सत्य है तो स्थिति सत्य होगी।
SELECT column_name(s)
FROM table_name
WHERE column_name operator ANY
(SELECT column_name
FROM table_name
WHERE condition)
ऑपरेटर ALL:
ALL का अर्थ है कि स्थिति तभी सत्य होगी जब रेंज में सभी मानों के लिए ऑपरेशन सत्य होगा।
SELECT ALL column_name(s)
FROM table_name
WHERE condition
SELECT column_name(s)
FROM table_name
WHERE column_name operator ALL
(SELECT column_name
FROM table_name
WHERE condition)
निम्नलिखित "Products" ("उत्पाद") तालिका से "Northwind" डेटाबेस का एक नमूना है:
ProductID | ProductName | SupplierID | CategoryID | Unit | Price |
---|---|---|---|---|---|
1 | Chais | 1 | 1 | 10 boxes x 20 bags | 18.00 |
2 | Chang | 1 | 1 | 24 - 12 oz bottles | 19.00 |
3 | Aniseed Syrup | 1 | 2 | 12 - 550 ml bottles | 10.00 |
4 | Chef Anton's Cajun Seasoning | 2 | 2 | 48 - 6 oz jars | 22.00 |
5 | Chef Anton's Gumbo Mix | 2 | 2 | 36 boxes | 21.35 |
6 | Grandma's Boysenberry Spread | 3 | 2 | 12 - 8 oz jars | 25.00 |
7 | Uncle Bob's Organic Dried Pears | 3 | 7 | 12 - 1 lb pkgs. | 30.00 |
8 | Northwoods Cranberry Sauce | 3 | 2 | 12 - 12 oz jars | 40.00 |
9 | Mishi Kobe Niku | 4 | 6 | 18 - 500 g pkgs. | 97.00 |
10 | Ikura | 4 | 8 | 12 - 200 ml jars | 31.00 |
और तालिका "OrderDetails" ("ऑर्डर विवरण") से नमूना:
OrderDetailID | OrderID | ProductID | Quantity |
---|---|---|---|
1 | 10248 | 11 | 12 |
2 | 10248 | 42 | 10 |
3 | 10248 | 72 | 5 |
4 | 10249 | 14 | 9 |
5 | 10249 | 51 | 40 |
6 | 10250 | 41 | 10 |
7 | 10250 | 51 | 35 |
8 | 10250 | 65 | 15 |
9 | 10251 | 22 | 6 |
10 | 10251 | 57 | 15 |
निम्नलिखित SQL क्वेरी ProductName को सूचीबद्ध करती है यदि उसे OrderDetails तालिका में 10 के बराबर Quantity मान वाला कोई (ANY) रिकॉर्ड मिलता है (यह TRUE लौटाएगा क्योंकि Quantity कॉलम में 10 के कुछ मान हैं):
Run SQLSELECT ProductName
FROM Products
WHERE ProductID = ANY
(SELECT ProductID
FROM OrderDetails
WHERE Quantity = 10)
निम्नलिखित SQL क्वेरी ProductName को सूचीबद्ध करती है यदि उसे OrderDetails तालिका में 99 से अधिक मात्रा वाला कोई (ANY) रिकॉर्ड मिलता है (यह TRUE लौटाएगा क्योंकि Quantity कॉलम में 99 से अधिक कुछ मान हैं):
Run SQLSELECT ProductName
FROM Products
WHERE ProductID = ANY
(SELECT ProductID
FROM OrderDetails
WHERE Quantity > 99)
एक अन्य SQL कथन ProductName को सूचीबद्ध करता है यदि उसे OrderDetails तालिका में 1000 से अधिक मात्रा वाला कोई (ANY) रिकॉर्ड मिलता है (यह FALSE लौटाएगा क्योंकि Quantity कॉलम में 1000 से अधिक मान नहीं हैं):
Run SQLSELECT ProductName
FROM Products
WHERE ProductID = ANY
(SELECT ProductID
FROM OrderDetails
WHERE Quantity > 1000)
निम्नलिखित SQL कथन सभी (ALL) उत्पाद नामों को सूचीबद्ध करता है:
Run SQLSELECT ALL ProductName
FROM Products
WHERE TRUE
यदि OrderDetails तालिका में सभी (ALL) रिकॉर्ड की गिनती 10 के बराबर है, तो निम्न SQL कथन ProductName को सूचीबद्ध करता है। बेशक, यह FALSE लौटाएगा क्योंकि कॉलम Quantity में कई अलग-अलग मान हैं (सिर्फ मान 10 नहीं):
Run SQLSELECT ProductName
FROM Products
WHERE ProductID = ALL
(SELECT ProductID
FROM OrderDetails
WHERE Quantity = 10)